A protocol bridge typically consists of two parts; a front-end that connects to initiator devices (typically storage controllers) and a back-end that connects to target devices (typically data storage devices). The back-end uses a protocol designed for target devices while the front-end uses a protocol designed for initiator devices. The front-end and back-end do not need to use the same protocol; rather, each system component may use whatever protocol is best suited to the attached devices. For instance, the front-send could use Fibre Channel over Ethernet (FCoE) while the back end could use Serial Attached SCSI (SAS).
The protocol bridge converts data traffic from one protocol to another so that devices using different protocols may effectively communicate. A protocol bridge may allow various initiator devices to retrieve data from more than one SAS data storage device.
Data storage devices routinely utilize caches to accelerate performance by replicating the most frequently accessed subset of all the data in the data storage device in a memory utilizing data storage technology having improved performance characteristics (such as access time) as compared to the data storage technology utilized to store all of the data in the data storage device.
In a data storage system utilizing a protocol bridge, each data storage device may include a cache to replicate the most frequently accessed data on each the data storage device. Where each data storage device includes a cache, each data storage device must independently determine what subset of data is accessed most frequently. Such methodology may lead to inefficiencies; for example, where data is replicated in two or more data storage devices, and load balancing spreads data access operations across the two or more data storage devices, each data storage device may not recognize that the data is frequently accessed. The total access time for data in such a system may therefore be sub-optimal.
Alternatively, each initiator device may employ a cache to replicate data most frequently accessed by the initiator device from one or more data storage devices connected to the protocol bridge. Where each initiator includes a cache, each initiator must independently determine what data it accesses most frequently. Such methodology may also lead to inefficiencies; for example, each initiator may cache the same data, thus reducing the total amount of cache space available for other data. The total access time for data in such a system may therefore be sub-optimal.
Consequently, it would be advantageous if an apparatus existed that is suitable for caching data from a plurality of data storage devices in a protocol bridge, and making such cached data available to a plurality of initiators.